// 合为 k 的子数组   nums = [1,1,1], k = 2  =》 输出 2

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number}
 */
var subarraySum = function (nums, k) {
  let len = nums.length
  let result = 0
  let sum = 0
  let myMap = new Map()
  myMap.set(0, 1)
  for (let i = 0; i < len; i++) {
    sum += nums[i]
    if (myMap.has(sum - k)) {
      result += myMap.get(sum - k)
    }
    if (myMap.has(sum)) {
      myMap.set(sum, myMap.get(sum) + 1)
    } else {
      myMap.set(sum, 1)
    }
  }

  return result
};

// console.log(subarraySum([1], 0));
console.log(subarraySum([-1, -1, 1], 0));

